www.gusucode.com > C 模拟ATM自动取款机源代码(TXT文件存储)-源码程序 > C 模拟ATM自动取款机源代码(TXT文件存储)-源码程序/code/ATM - 副本/ATM/operatiun.cpp

    //Download by http://www.NewXing.com
#include "operation.h"
#include "change.h"

/************用户名密码结构体***************/
struct newuser 
{
	char cPsw[7];
	char cID[13];
}user;
/********************存取款结构体******
*******/

struct SavingRecord
{
	double sum; //存款额
	double balance; //余额
	char date[20];//存款时间
}user1;
//输入密码
void inputpsw()
{
      char c;
	  int i;
	  char cPsw[7]="";

	   for (i=0;i<7;i++)
	   {
          
		    c=_getch();
			if (c=='B'||c=='b') {
                      logFace();
                   log();
				   break;

			}
			//判断是否为数字
			else if ((c>=48&&c<=83)&&(i<6)) {
				printf("*");
			}
			else if ((c==13)&&(i==6))
			{
				 break;
			}
			else
			 i--;
			   if ((c==8)&&(i>=0)) {
                     printf("\b\b  \b");          //输入回退重新输入密码
					 i--;
			   }
		
			cPsw[i]=(c+2);                 //对输入数据进行加密
	   }
cPsw[6]='\0';
strcpy(user.cPsw,cPsw);	
}
//用户名
void inputID()
{
	char d;
	int i;
    char cID[13];
	 
	for (i=0;i<13;i++) {
          
		 d=_getch();
		 if (d=='b'||d=='B') {
			  	logFace();
                   log();
				   break;

		 }
        if ((d>47)&&(d<58)&&i<12) {
			  printf("%c ",d);
			  cID[i] = d;	
		 }
         else if ((d==13)&&(i==12))
		 {
			  break;
         }
		 else
		 {  
			  i--;
		     if((d==8)&&(i>=0))
			 {
                 printf("\b\b\b  \b");          //输入回退重新输入密码
					
			     i--;
		     }
		 }

	}
 


     cID[12]='\0'; 
	strcpy(user.cID,cID);
}


//check ID
bool checkID()
{ 
	 char cnpwd[7]="";
     bool bEnd=false;
     char cID[13]="" ; 
	 char cPsw[7]="";
     FILE *fp;
     fp = fopen("user.txt","rw"); 
     
	 while(1)
	{
		fseek(fp,0,1);
		int nsk=fscanf(fp,"%s\n%s",cID,cPsw);
		if (nsk==-1)
		{   bEnd=true;
			break;}
		if(strcmp(user.cID,cID)==0)
		{   bEnd = false;
			break;	
		}
		else 
		bEnd = true;
	}
	fclose(fp);
return bEnd;
}

//check pwd

bool checkpwd()
{
     char cnpwd[7]="";
     bool bEnd=false;
     char cID[13]="" ; 
	 char cPsw[7]="";
     FILE *fp;
	 fp = fopen("user.txt","rw");
	 while(1)
	{
		fseek(fp,0,1);
		int nsk=fscanf(fp,"%s\n%s",cID,cPsw);
		if (nsk==-1)
		{
			bEnd = false;
			break;
		}
		if((strcmp(user.cID,cID)==0)&&(strcmp(user.cPsw,cPsw)==0))//比较输入帐号和密码是否一致
			
		{
			bEnd = true;
			break;
		}	
	}
	fclose(fp);	
	return bEnd;
}
//登录操作

void login()
{
	FILE *fp;
	bool bEnd=false;
	char cID[13]=""; 
	char cPwd[7]="";
	int num=0;            //记录密码错误次数
	fp=fopen("user.txt","rw");
	MoveCursorTo(24,9);
	SetTextColor(15,8);
	inputID();
	while (checkID()==true) {
		MoveCursorTo(48,9);
		SetTextColor(12,9);
		printf("账户不存在!");
		_getch();
		MoveCursorTo(48,9);
		SetTextColor(9,2);
		printf("			");
	   MoveCursorTo(48,9);
	   SetTextColor(9,2);
	   printf("			");
	   MoveCursorTo(24,9);
	   SetTextColor(15,8);
	   printf("		       ");
	   MoveCursorTo(24,9);
	   inputID();
	}
  MoveCursorTo(23,13);
  SetTextColor(15,8);
  inputpsw();
 
   while(checkpwd()== false)      //输入密码不正确,重新输入
   {	num=num+1;
        MoveCursorTo(50,13);
		SetTextColor(12,9);
		printf("密码错误,请重新输入!");
		_getch();
		MoveCursorTo(50,13);
		SetTextColor(9,2);
		printf("                       ");
		MoveCursorTo(23,13);
		SetTextColor(15,8);
		printf("             ");
		 if (num==3)                // 判断密码是否错误了3次
		 {
        MoveCursorTo(4,16);
		SetTextColor(12,9);
		printf("密码错误3次,你的账户被锁!请持相关证件来领取!任意键程序结束!");
		MoveCursorTo(4,25);
		exit(0);

		 }
		MoveCursorTo(23,13);
		SetTextColor(15,8);
		inputpsw();		
	}
	
	fclose(fp);	
	operFace();
	choose();
}
//************获取时间********
char* CurTime()		//从CPU获取系统当前时间
{
	//系统自定义结构体函数,并对其字符输出形式进行优化
	char str[40]={""},year[5],month[3],date[3],hour[5],min[6],sec[6];
	tm * curTime;
	time_t long_time;
	time( &long_time );
    curTime = localtime( &long_time );
	
	itoa(curTime->tm_year+1900,year,10);
	itoa(curTime->tm_mon+1,month,10);
	itoa(curTime->tm_mday,date,10);
	itoa(curTime->tm_hour,hour,10);
	itoa(curTime->tm_min,min,10);
	itoa(curTime->tm_sec,sec,10);
	
	strcpy(str,year);
	strcat(str,"/");
	if(strlen(month)==1)
	{	strcat(str,"0");	strcat(str,month);	}
	else	{	strcat(str,month);	}
	strcat(str,"/");
	if(strlen(date)==1)	{	strcat(str,"0");	strcat(str,date);	}
	else	{	strcat(str,date);	}
	strcat(str,"/");
	if(strlen(hour)==1)
	{	strcat(str,"0");	strcat(str,hour);}
	else	{	strcat(str,hour);	}
	strcat(str,":");
	if(strlen(min)==1)	{	strcat(str,"0");strcat(str,min);}
	
	else	{strcat(str,min);}
	strcat(str,":");
	if(strlen(sec)==1)		{strcat(str,"0");strcat(str,sec);}	
	else{strcat(str,sec);
	}
	return str;
}

////////////////////////////注册函数//////////////////////////////////////////////

void reginter()
{    
	  char firstpwd[7];  //记录第一次密码输入
	  char secondpwd[7];
	  char  cID[13];         //记录账户的输入
	  MoveCursorTo(33,6);
	  SetTextColor(15,8);
	  inputID();
	  while (checkID()==false) {
		  MoveCursorTo(33,8);
		  SetTextColor(12,9);
		  printf("账户已经存在");
		  _getch();
		  MoveCursorTo(33,8);
		  SetTextColor(9,2);
		  printf("            ");
		 
		  MoveCursorTo(33,6);
	      SetTextColor(15,8);
		  printf("			");
		  MoveCursorTo(33,6);
		  inputID();
	  }


	  MoveCursorTo(33,12);
	  SetTextColor(15,8);
	  inputpsw();
	  strcpy(firstpwd,user.cPsw);

	  MoveCursorTo(33,18);
      inputpsw();
	  strcpy(secondpwd,user.cPsw);
    while (strcmp(firstpwd,secondpwd)!=0)      //两次密码比较是否一致
	{
		 MoveCursorTo(33,20);
		 SetTextColor(12,9);
		 printf("密码输入不相同");
		 _getch();
		 MoveCursorTo(33,20);
		 SetTextColor(9,2);
		 printf("			");

		 MoveCursorTo(33,12);
		 printf("			");
         
		 MoveCursorTo(33,18);
		 printf("			");
        MoveCursorTo(33,12);
		SetTextColor(15,8);
		inputpsw();
		strcpy(firstpwd,user.cPsw);
		MoveCursorTo(33,18);
		SetTextColor(15,8);
	     inputpsw();
		strcpy(secondpwd,user.cPsw);
		if (strcmp(firstpwd,secondpwd)==0)
			break;

    }



	FILE *fp;
		fp = fopen("user.txt","a");   //以追加的形式打开文本
		if(fp != NULL)
		{
			
			fprintf(fp,"%s\n%s\n",user.cID,user.cPsw);           //格式化写进数据
		}
		fclose(fp);
		FILE *fp1;          //注册成功,建立存款文件
		strcpy(cID,user.cID);
		strcat(cID,"deposit.txt");
		fp1 = fopen(cID,"w");
		fclose(fp1);	
		FILE *fp2;           //建立取款文件
		strcpy(cID,user.cID);
		strcat(cID,"cWith.txt");
		fp2 = fopen(cID,"w");
		fclose(fp2);
		FILE *fp3;          //建立转帐文件
		strcpy(cID,user.cID);
		strcat(cID,"Tran.txt");
		fp3 = fopen(cID,"w");
		fclose(fp3);
		FILE *fp4 ;       //建立总余额文件
		strcpy(cID,user.cID);
		strcat(cID,"remain.txt");
		fp4 = fopen(cID,"w");
		fclose(fp4);
		MoveCursorTo(33,20);
		SetTextColor(15,9);
		printf("注册成功!按“E”返回!请牢记你的密码");	
		
		while(1)
		{
		  char cA=_getch();
		if((cA==69)||(cA==101))
		{
			logFace();        //返回登录注册选择界面
	     	log();     
			break;
		}
		}	

}

/*******************存款******************/
void deposit()
{
	
	char d ;
	char cMoney[7]="" ; 
	char remain[26];
	double dZ = 0.00;
	
	double dMoney = 0.00;
	
    depositFace();
	MoveCursorTo(32,7);
	SetTextColor(15,9);
 
	for(int i = 0; i<7; i++)        //输入字符长度为6
	{
		
		d = _getch();
		if( (d == 101)||(d ==69) )
		{   //返回操作界面
			operFace();   
	        choose();
			break;
		}
		
		
		if((d>47 && d<58) && i<6 )
		{
			
			printf("%c ",d);
			cMoney[i] = d;	
		}
		else if(d==13)            //不足6位,用a代替
		{
			int k = i+1;
			
			for(k;k<7;k++)             
			{
				cMoney[k]= 'a';
				cMoney[i]=cMoney[k];
			}
			break;	
		}
		else
			i--; 
		
		if((d==8) && (i>=0))
		{
			printf("\b\b\b  \b");          //删除输入
			i--;
		}	
	}
	cMoney[7]='\0'; 
	double dX = atof(cMoney);         //将数组字符串型转为double
	/*if (dX%100!=0) {
          MoveCursorTo(20,18);
	      SetTextColor(15,9);
		  printf("输入不和法,你输入的数值必须是100的倍数");
		  goto da;
	}*/
//	double dX=atof(dX);
	//double dS = 0.00;





	char cID[26];
	
	double money = 0.00;
	double um = 0.00;
	strcpy(user1.date,CurTime());     //将系统时间传给user1.date
	FILE *fp4;
	strcpy(remain,user.cID);         //读取帐户余额dZ记录
	strcat(remain,"remain.txt");
	fp4 = fopen(remain,"r");     //打开余额记录   
	if(fp4 == NULL)
		dZ = 0.00;
	else 
	{
		char cA[100];
		fscanf(fp4,"%s\t%lf",cA,&um);
		dZ = um ;
	}
	fclose(fp4);
	user1.balance =dZ + dX;
	FILE *fp1;  
	strcpy(cID,user.cID);
	strcat(cID,"deposit.txt");
	fp1 = fopen(cID,"a");        //写入存款记录
	if(fp1 != NULL)
	{
		
		fprintf(fp1,"%s\t+%010.2lf\t%010.2lf\n",user1.date,dX,user1.balance);
	}
	fclose(fp1);
	
	fp4 = fopen(remain,"w");        
	fprintf(fp4,"%s\t%.2lf\n",user1.date,user1.balance);
	
	fclose(fp4);
	
    MoveCursorTo(20,18);
	SetTextColor(15,9);
	
	printf("存款成功,帐户余额%.2lf.",user1.balance);	
	
	
	while(1)
	{
		char m = _getch();
		if((m==69)||(m==101)){

			MoveCursorTo(20,18);
	        SetTextColor(9,2);
			printf("				");
	   //返回操作界面
		operFace();  
	    choose();
			}
	}
	
}


/*******************取款******************/
void withdraw()
{
	
	FILE *fp4; 
	char cMoney[7]="" ; 
	char d ;
	char cWith[24];
	char remain[24];
	double dN = 0.00;    //取款总额
	double dZ = 0.00;    //帐户余额
	double money = 0.00;
	double um = 0.00;
	double un = 0.00;
	
	int nB = 0 ;
	double dMoney ;
	choicemoneyFace();
	nB = inputmoney();
	if(nB == 1)
		dMoney = 100.00;
	if(nB == 2)
		dMoney = 200.00;
	if(nB == 3)
		dMoney = 300.00;
	if(nB == 4)
		dMoney = 500.00;
	if(nB == 5)
	{
		
		MoveCursorTo(28,21);
		SetTextColor(15,9);
		
		
		
		for(int i = 0; i<7; i++)        //输入字符长度为6
		{
		    d = _getch();
			if((d>47 && d<58) && i<6 )
			{
				printf("%c ",d);
				cMoney[i] = d;	
			}
			else if(d==13)            //不足6位,用a代替
			{
				int k = i+1;
				
				for(k;k<7;k++)             
				{
					cMoney[k]= 'a';
					cMoney[i]=cMoney[k];
				}
				break;	
			}
			else
				i--; 
			
			if((d==8) && (i>=0))
			{
				printf("\b\b\b  \b");          //删除输入
				i--;
			}
			
		}
		cMoney[7]='\0'; 
		dMoney = atof(cMoney);
		
	}
	
	
	
	strcpy(user1.date,CurTime());
	strcpy(remain,user.cID);         //读取帐户余额dZ记录
	strcat(remain,"remain.txt");
	fp4 = fopen(remain,"r");        
	if(fp4 == NULL)
		dZ = 0.00;
	else 
	{
		fscanf(fp4,"%s\t%lf",user1.date,&um);
		
		dZ = um ;
	}
	fclose(fp4);
	
	while(1)
	{
		if(dMoney<=dZ)
			break;
		if(dMoney>dZ)
			MoveCursorTo(28,21);
		SetTextColor(15,9);
		
		printf("余额不足,请重新输入!");
		char d = _getch();
		
		choicemoneyFace();
		nB = inputmoney();
		if(nB == 1)
			dMoney = 100.00;
		if(nB == 2)
			dMoney = 200.00;
		if(nB == 3)
			dMoney = 300.00;
		if(nB == 4)
			dMoney = 500.00;
		if(nB == 5)
			
		{	
			MoveCursorTo(28,21);
			SetTextColor(15,9);
			
			
			
			for(int i = 0; i<7; i++)        //输入字符长度为6
			{
				
				d = _getch();
				if((d>47 && d<58) && i<6 )
				{
					
					printf("%c ",d);
					cMoney[i] = d;	
				}
				else if(d==13)            //不足6位,用a代替
				{
					int k = i+1;
					
					for(k;k<7;k++)             
					{
						cMoney[k]= 'a';
						cMoney[i]=cMoney[k];
					}
					break;	
				}
				else
					i--; 
				
				if((d==8) && (i>=0))
				{
					printf("\b\b\b  \b");          //删除输入
					i--;
				}
				
			}
			cMoney[7]='\0'; 
			dMoney = atof(cMoney); 
		}
		
	}
	
	strcpy(user1.date,CurTime());    //将系统时间传给user1.date
	user1.balance = dZ-dMoney ;    //计算帐户余额
	
	   strcpy(cWith,user.cID);
	   strcat(cWith,"cWith.txt");
	   FILE *fp2;                    //写入取款文件
	   
	   fp2 = fopen(cWith,"a");       
	   fprintf(fp2,"%s\t-%.2lf\t%.2lf\n",user1.date,dMoney,user1.balance);
	   fclose(fp2);
	   fp4 = fopen(remain,"w");        
	   fprintf(fp4,"%s\t%.2lf\n",user1.date,user1.balance);
	   fclose(fp4);
	   MoveCursorTo(20,19);
	   SetTextColor(15,9);
	   printf("取款成功,帐户余额%.2lf.按任意键返回",user1.balance);	
	   _getch(); 
		   //返回操作界面
		operFace();  
	    choose(); 
	   
	   
}



/*******************转帐操作**********************/
void Tran()
{
	char cTran[24];
	char cInto[24];
	char firstinputID[13] ="";
	char secondinputID[13] = "";	
	char cT[13] ;   //记录登录帐号
	char d ;
	char cMoney[7]="" ; 
	char remain[26];
	double dZ = 0.00;	
	double dMoney = 0.00;	
	double um = 0.00;
	double dU = 0.00;    //转入目标文件余额	
	TranFace();
	strcpy(cT,user.cID);   //cT表示登录帐户ID		
	//***************打开帐户余额*****************
	FILE *fp4;
	strcpy(remain,user.cID);         //读取帐户余额dZ记录
	strcat(remain,"remain.txt");
	fp4 = fopen(remain,"r");     //打开余额记录   
	if(fp4 == NULL)
		dZ = 0.00;
	else 
	{
		fscanf(fp4,"%s\t%lf",user1.date,&um);
		
		dZ = um ;
	}
	fclose(fp4);
	//**************得到帐户余额*****************
	//**************帐号输入****************
    MoveCursorTo(32,7);
	SetTextColor(15,8);
	inputID();
	strcpy(firstinputID,user.cID);
    while(strcmp(firstinputID,cT)==0)	
	{
		MoveCursorTo(32,10);
		SetTextColor(12,9);
		printf("不能给自己转帐,请重新输入           ");
		_getch();
		MoveCursorTo(32,10);
		SetTextColor(12,9);
		printf("                             ");
		MoveCursorTo(32,7);
		SetTextColor(15,8);
		printf("                        ");
		MoveCursorTo(32,7);
        SetTextColor(15,8);
		inputID() ;
		strcpy(firstinputID,user.cID);
	}	
	while(checkID() == true)	
	{
		MoveCursorTo(32,10);
		SetTextColor(12,9);
		printf("帐号不存在,请重新输入           ");
		_getch();
		MoveCursorTo(32,10);
		SetTextColor(12,9);
		printf("                             ");
		MoveCursorTo(32,7);
		SetTextColor(15,8);
		printf("                        ");
		MoveCursorTo(32,7);
        SetTextColor(15,8);
		inputID() ;
		strcpy(firstinputID,user.cID);
	}	
	MoveCursorTo(32,12);
	SetTextColor(15,8);
	inputID();
	strcpy(secondinputID,user.cID);
	while(strcmp(firstinputID,secondinputID)!=0)
	{
		MoveCursorTo(32,15);
		SetTextColor(12,9);
		printf("输入帐号不相同,请重新输入!\n");
		_getch();
		MoveCursorTo(32,15);
		SetTextColor(12,9);
		printf("                               ");
		MoveCursorTo(32,7);
		SetTextColor(15,8);
		printf("                        ");
		MoveCursorTo(32,12);
		SetTextColor(15,8);
		printf("                        ");
		MoveCursorTo(32,7);
		SetTextColor(15,8);
		inputID();
		strcpy(firstinputID,user.cID);
		while(checkID() == true)	
		{
			MoveCursorTo(32,10);
			SetTextColor(12,9);
			printf("帐号不存在,请重新输入           ");
			_getch();
			MoveCursorTo(32,10);
			SetTextColor(12,9);
			printf("                             ");
			MoveCursorTo(32,7);
			SetTextColor(15,8);
			printf("                        ");
			MoveCursorTo(32,7);
			SetTextColor(15,8);
			inputID() ;
			strcpy(firstinputID,user.cID);
		}
		printf("%s",firstinputID);
		MoveCursorTo(32,12);
		SetTextColor(15,8);
		inputID();
		strcpy(secondinputID,user.cID);
		printf("%s",secondinputID);
		if (strcmp(firstinputID,secondinputID)==0)
			break;
	}
	//***************************	
	strcpy(user.cID,cT); 
	//***************输入转帐金额*******************
	MoveCursorTo(32,17);
	SetTextColor(15,9);
	for(int i = 0; i<7; i++)        //输入字符长度为6
	{
		d = _getch();
		if((d>47 && d<58) && i<6 )
		{
			printf("%c ",d);
			cMoney[i] = d;	
		}
		else if(d==13)            //不足6位,用a代替
		{
			int k = i+1;
			for(k;k<7;k++)             
			{
				cMoney[k]= 'a';
				cMoney[i]=cMoney[k];
			}
			break;	
		}
		else
			i--; 
		
		if((d==8) && (i>=0))
		{
			printf("\b\b\b  \b");          //删除输入
			i--;
		}	
	}
	cMoney[7]='\0'; 
	double  dX = atof(cMoney);         //将数组字符串型转为double	
	//***************转帐金额输入结束**************	
	while(1)
	{
		if(dX<=dZ)
			break;
		if(dX>dZ)
		{
			MoveCursorTo(32,17);
			SetTextColor(15,9);
			printf("               ");
			MoveCursorTo(32,21);
			SetTextColor(15,9);
			printf("                      ");
			MoveCursorTo(32,21);
			SetTextColor(15,9);
			printf("余额不足,请重新输入");
			MoveCursorTo(32,17);
			SetTextColor(15,9);	
			for(int i = 0; i<7; i++)        //输入字符长度为6
			{	
				d = _getch();	
				if((d>47 && d<58) && i<6 )
				{	
					printf("%c ",d);
					cMoney[i] = d;	
				}
				else if(d==13)            //不足6位,用a代替
				{
					int k = i+1;
					for(k;k<7;k++)             
					{
						cMoney[k]= 'a';
						cMoney[i]=cMoney[k];
					}
					break;	
				}
				else
					i--; 
				if((d==8) && (i>=0))
				{
					printf("\b\b\b  \b");          //删除输入
					i--;
				}	
			}
			cMoney[7]='\0'; 
			double  dX = atof(cMoney); 
			
		}
	}	
	//****************验证余额结束,开始写文件***************
	MoveCursorTo(20,21);
	SetTextColor(15,9);
	printf("确定转入请按Enter,放弃操作请按E退出");	
	strcpy(user1.date,CurTime()); //将系统时间传给user1.date
	char m = _getch();
	while(1)
	{
		if((m==69)||(m==101))
		{
			//返回操作界面
			operFace();   
	        choose();
			break;
			
		}
		if(m==13)break;
	}
	FILE *fp3;                    //建立转帐文件,写入转出信息
	strcpy(cTran,cT);
	strcat(cTran,"Tran.txt");
	fp3 = fopen(cTran,"a");	
	fprintf(fp3,"%s\t%s\t-%.2lf\n",user1.date,firstinputID,dX);
	fclose(fp3);
	char cTranIn[20];
	FILE *fp5;  
	strcpy(cTranIn,firstinputID);
	strcat(cTranIn,"Tran.txt");
    fp5 = fopen(cTranIn,"a");
	fprintf(fp5,"%s\t%s\t+%.2lf\n",user1.date,cT,dX);
    fclose(fp5);
   FILE *fp;	
	user1.balance = dZ - dX;
	fp4 = fopen(remain,"w");        
	fprintf(fp4,"%s\t%.2lf\n",user1.date,user1.balance);	
	fclose(fp4);
	strcpy(cInto,firstinputID);
	strcat(cInto,"remain.txt");
	fp = fopen(cInto,"r");      //打开目标文件总余额文件	
	fscanf(fp,"%s\t%.2lf\n",user1.date,dU);	
	fclose(fp);
	fp = fopen(cInto,"w");     //写入转帐金额到目标文件
	double dQ = 0.00;
	dQ = dU + dX;
	fprintf(fp,"%s\t%.2lf\n",user1.date,dQ);
	fclose(fp);
	MoveCursorTo(20,21);
	SetTextColor(15,9);
	printf("转帐成功,帐户余额%.2lf.按任意键返回",user1.balance);	
	_getch();	
	     //返回操作界面
			operFace();   
	        choose();
			//break;	
}


/********************修改密码*********************************/

void changepsw()
{
     char oldpsw[7];
	char newpsw1[7];
	char newpsw2[7];	
	strcpy(oldpsw,user.cPsw);
    changepswFace();
	MoveCursorTo(32,7);
	SetTextColor(15,8);
	inputpsw();
	while(1)
	{
		if(strcmp(oldpsw,user.cPsw)==0) break;
		else 
		{   MoveCursorTo(22,20);
			SetTextColor(15,9);
			printf("旧密码输入错误,Enter重新输入;E退出");
			char c = _getch();
			if((c==101)||(c==69))
			{
				//返回操作界面
			operFace();   
	        choose();
			break;
				
			}
			else
			{
				MoveCursorTo(22,20);
				SetTextColor(15,9);
				printf("                                      ");
				MoveCursorTo(32,7);
				SetTextColor(15,8);
				printf("            ");
				MoveCursorTo(32,7);
				SetTextColor(15,8);
				inputpsw();
			}
		}
	}
	
	MoveCursorTo(50,7);
	SetTextColor(15,9);
	printf("(6位)");
	
	MoveCursorTo(32,12);
	SetTextColor(15,8);
	inputpsw();
    strcpy(newpsw1,user.cPsw);
	MoveCursorTo(32,17);
	SetTextColor(15,8);
	inputpsw();
    strcpy(newpsw2,user.cPsw);
	
    while(1)
	{
		if(	strcmp(newpsw1,newpsw2)==0) break;
		else
		{
			
			MoveCursorTo(22,20);
			SetTextColor(15,9);
			printf("新密码输入不一至,Enter重新输入;E退出");	
			char c =_getch();
			if((c==101)||(c==69))
			{
				//返回操作界面
			     operFace();   
	             choose();
				 break;
				
			}
			if(c==13)
			{   MoveCursorTo(22,20);
				SetTextColor(12,9);
				printf("                                       ");
				MoveCursorTo(32,12);
				SetTextColor(15,8);
				printf("             ");
				MoveCursorTo(32,17);
				SetTextColor(15,8);
				printf("             ");
				MoveCursorTo(32,12);
				SetTextColor(15,8);
				inputpsw();
				strcpy(newpsw1,user.cPsw);
				MoveCursorTo(32,17);
				SetTextColor(15,8);
				inputpsw();
				strcpy(newpsw2,user.cPsw);	
			}	
		}		
	}	
	FILE *fp;
	fp = fopen("user.txt","r+");
	char cAccount[13];
	char cPassword[7];
	while(!feof(fp))
	{   fscanf(fp,"%s%s",cAccount,cPassword);
		if(strcmp(user.cID,cAccount) != 0)
		{
			continue;
		}
		break;
	}
	fseek(fp,-6,1);
	fprintf(fp,"%s\n",newpsw2);
	fclose(fp);	
    MoveCursorTo(20,21);
	SetTextColor(15,9);
	printf("密码修改成功,按任意E键返回");	
	char cB = _getch();
	while(1)
	{
		if((cB==69)||(cB==101)){
			//返回操作界面
			operFace();   
	        choose();
			break;
		}
	  cB = _getch();
	}
	

}

////////////////////////////查询余额//////////////////////////////////////////////

void balancefind()
{  
	
	FILE *fp;                //文件指针
	double dZ=0.0,um=0.0;          
	char remain[26];
	strcpy(remain,user.cID);         //读取帐户余额dZ记录
	strcat(remain,"remain.txt");
	fp = fopen(remain,"r");     //打开余额记录   
	if(fp == NULL)
		dZ = 0.00;
	else 
	{
		char cA[100];
		fscanf(fp,"%s\t%lf",cA,&um);
		dZ = um ;
	}
	fclose(fp);
  
	MoveCursorTo(33,10);
	SetTextColor(15,2);
	printf("%.2lf",dZ);

   MoveCursorTo(33,13);
   SetTextColor(15,2);
   printf("键入0返回主界面");
   char a=_getch();
   while (1) {
	   if (a=='0') {
          	//返回操作界面
			operFace();   
	        choose();
			break;
	   }
	   a=_getch();
   }
  
}

/////////////////////存款记录查询/////////////////////////////////////////////////////

void depositlog()
{
	FILE *fp;
	char deposit[26];
	char date[100];
	double dM=0.00;
	double dZ=0.00;
	char buf[100];
	int count=0;
	int i=4;
	int num=0;		//当前页
	int nu=0;		//总记录数
	int nu1=0;		
	int nu2=0;		//总页数
	
	strcpy(deposit,user.cID);
	strcat(deposit,"deposit.txt");
	
	depositFacefind();
	MoveCursorTo(14,2);
	SetTextColor(7,1);
	printf("	   存款日期		  存款金额	 当前余额\n");
	
	fp=fopen(deposit,"r");
	while(fgets(buf, sizeof(buf), fp)!=NULL)
		nu1++;
	if(nu1%2!=0) nu2=(nu1/2)+1;
	else nu2=nu1/2;
	fclose(fp);

	fp=fopen(deposit,"r");
	if(fp==NULL)
	{
		MoveCursorTo(33,i);
		SetTextColor(12,1);
		printf("您没有存款记录");
		MoveCursorTo(0,24);	
	}
	else
	{ 
		while(1)
		{
			count=0;
			i=4;
			MoveCursorTo(14,i);
			SetTextColor(5,1);
			while(fgets(buf, sizeof(buf), fp)!=NULL)
			{
				i++;
				nu++;
				count++;
				MoveCursorTo(14,i);
				printf("%s\n",buf);
				if (count==2 || nu==(2*nu2-1)) 
				{
					num++;
					MoveCursorTo(30,20);
					SetTextColor(7,1);
					printf(" 第 %d 页  共 %d 页",num,nu2);
					break;
				}
			}
			MoveCursorTo(0,24);	

			while(1)
			{
				char c=getch();
				if((c=='n' || c=='N') && (nu<nu1))
				{
					break;
				}
				if(c=='s' || c=='S')
				{
					fseek(fp,0,0);
					num=0;
					nu=0;
					break;
				}
			
				if((c=='e')||(c=='E'))
				{
						operFace();   
	                   choose();
					break;
					
				}
				if((c=='b')||(c=='B'))
				{
						logFace();
                        log();
					break;
				}
			}
			continue;
		}
	}
	fclose(fp);

	
}

////////////////////////////取款记录//////////////////////////////////////////////

void withlog()
{
	FILE *fp;
	char cWith[26];
	char date[100];
	double dM=0.00;
	double dZ=0.00;
	char buf[100];
	int count=0;
	int i=4;
	int num=0;		//当前页
	int nu=0;		//总记录数
	int nu1=0;		
	int nu2=0;		//总页数
	
	strcpy(cWith,user.cID);
	strcat(cWith,"cWith.txt");
	
	depositFacefind();
	MoveCursorTo(14,2);
	SetTextColor(7,1);
	printf("	   取款日期		  取款金额	 当前余额\n");
	
	fp=fopen(cWith,"r");
	while(fgets(buf, sizeof(buf), fp)!=NULL)
		nu1++;
	if(nu1%2!=0) nu2=(nu1/2)+1;
	else nu2=nu1/2;
	fclose(fp);

	fp=fopen(cWith,"r");
	if(fp==NULL)
	{
		MoveCursorTo(33,i);
		SetTextColor(12,1);
		printf("您没有存款记录");
		MoveCursorTo(0,24);	
	}
	else
	{ 
		while(1)
		{
			count=0;
			i=4;
			MoveCursorTo(14,i);
			SetTextColor(5,1);
			while(fgets(buf, sizeof(buf), fp)!=NULL)
			{
				i++;
				nu++;
				count++;
				MoveCursorTo(14,i);
				printf("%s\n",buf);
				if (count==2 || nu==(2*nu2-1)) 
				{
					num++;
					MoveCursorTo(30,20);
					SetTextColor(7,1);
					printf(" 第 %d 页  共 %d 页",num,nu2);
					break;
				}
			}
			MoveCursorTo(0,24);	

			while(1)
			{
				char c=getch();
				if((c=='n' || c=='N') && (nu<nu1))
				{
					break;
				}
				if(c=='s' || c=='S')
				{
					fseek(fp,0,0);
					num=0;
					nu=0;
					break;
				}
			
				if((c=='e')||(c=='E'))
				{
						operFace();   
	                   choose();
					break;
					
				}
				if((c=='b')||(c=='B'))
				{
						logFace();
                        log();
					break;
				}
			}
			continue;
		}
	}
	fclose(fp);
	
}


////////////////////////////转账记录//////////////////////////////////////////////

void tranlog()
{
		FILE *fp;
	char Tran[26];
	char date[100];
	double dM=0.00;
	char dZ[100];
	char buf[100];
	int count=0;
	int i=4;
	int num=0;		//当前页
	int nu=0;		//总记录数
	int nu1=0;		
	int nu2=0;		//总页数
	
	strcpy(Tran,user.cID);
	strcat(Tran,"Tran.txt");
	
	depositFacefind();
	MoveCursorTo(14,2);
	SetTextColor(7,1);
	printf("	   转账日期		转入出帐号	 转入/转出金额\n");
	
	fp=fopen(Tran,"r");
	while(fgets(buf, sizeof(buf), fp)!=NULL)
		nu1++;
	if(nu1%2!=0) nu2=(nu1/2)+1;
	else nu2=nu1/2;
	fclose(fp);

	fp=fopen(Tran,"r");
	if(fp==NULL)
	{
		MoveCursorTo(33,i);
		SetTextColor(12,1);
		printf("您没有存款记录");
		MoveCursorTo(0,24);	
	}
	else
	{ 
		while(1)
		{
			count=0;
			i=4;
			MoveCursorTo(14,i);
			SetTextColor(5,1);
			while(fgets(buf, sizeof(buf), fp)!=NULL)
			{
				i++;
				nu++;
				count++;
				MoveCursorTo(14,i);
				printf("%s\n",buf);
				if (count==2 || nu==(2*nu2-1)) 
				{
					num++;
					MoveCursorTo(30,20);
					SetTextColor(7,1);
					printf(" 第 %d 页  共 %d 页",num,nu2);
					break;
				}
			}
			MoveCursorTo(0,24);	

			while(1)
			{
				char c=getch();
				if((c=='n' || c=='N') && (nu<nu1))
				{
					break;
				}
				if(c=='s' || c=='S')
				{
					fseek(fp,0,0);
					num=0;
					nu=0;
					break;
				}
			
				if((c=='e')||(c=='E'))
				{
						operFace();   
	                   choose();
					break;
					
				}
				if((c=='b')||(c=='B'))
				{
						logFace();
                        log();
					break;
				}
			}
			continue;
		}
	}
	fclose(fp);
	
}